<?php

class Atelier
{
    private $idAtelier;

    private $nomAtelier;

    private $dureeAtelier;

    private $ordreAtelier;
    
    private $heureParJour = 7;

    private $nombreProduitSortie = 1000;
    
    private $nombreHeurePasse = 0;
    
    private $nombreProduitFini = 0;
    
    private $critique;
    private $machine_critique;
    
    function Atelier($id, $nom, $duree, $ordre, $critique, $machine_critique)
    {
        $this->idAtelier = $id;
        $this->nomAtelier = $nom;
        $this->dureeAtelier = $duree;
        $this->ordreAtelier = $ordre;
        $this->critique = $critique;
        $this->machine_critique = $machine_critique;
    }
    
    function ordreInfCritique()
    {
        $res = false;
        if(!$this->getCritique())
        {
            $machine_critique = $this->getMachine_critique();
            if($this->getOrdreAtelier() < $machine_critique->getOrdreAtelier())
            {
                $res = true;
            }
        }
        
        return $res;
    }
    
    function getDureeMachineCritique()
    {
        $res = 0;
        if($this->critique)
        {
            $res = $this->getDureeAtelier();
        }
        else
        {
            $res = $this->machine_critique->getDureeAtelier();
        }
        
        return $res;
    }
    
    public function getCritique() {
        return $this->critique;
    }

    public function setCritique($critique) {
        $this->critique = $critique;
    }

    public function getMachine_critique() {
        return $this->machine_critique;
    }

    public function setMachine_critique($machine_critique) {
        $this->machine_critique = $machine_critique;
    }

        // Ajoute les produits fini en 1 série
    function addProduit()
    {
        $nbproduit = $this->getNombreProduitFini();
        $this->setNombreProduitFini($nbproduit + $this->getNombreProduitSortie());
    }
    
    // Enleve des produits fini
    function delProduit($nbproduitsupp)
    {
        $nbproduit = $this->getNombreProduitFini();
        $this->setNombreProduitFini($nbproduit - $nbproduitsupp);
    }
    
    // Ajoute 1 heure passé en atelier
    function addHeure()
    {
        $nbheure = $this->getNombreHeurePasse();
        $this->setNombreHeurePasse($nbheure + 1);
    }
    
    // Nombre de produit pouvant être fabriqué par jour
    function getFabricationParJour()
    {
        // Arrondi en dessous
        $res = floor(($this->heureParJour / $this->dureeAtelier) * $this->nombreProduitSortie);
        return $res;
    }

    public function getIdAtelier()
    {
    	return $this->idAtelier;
    }

    public function setIdAtelier($idAtelier)
    {
    	$this->idAtelier = $idAtelier;
    }

    public function getNomAtelier()
    {
    	return $this->nomAtelier;
    }

    public function setNomAtelier($nomAtelier)
    {
    	$this->nomAtelier = $nomAtelier;
    }

    public function getDureeAtelier()
    {
    	return $this->dureeAtelier;
    }

    public function setDureeAtelier($dureeAtelier)
    {
    	$this->dureeAtelier = $dureeAtelier;
    }

    public function getOrdreAtelier()
    {
    	return $this->ordreAtelier;
    }

    public function setOrdreAtelier($ordreAtelier)
    {
    	$this->ordreAtelier = $ordreAtelier;
    }

    public function getNombreProduitSortie()
    {
    	return $this->nombreProduitSortie;
    }

    public function setNombreProduitSortie($nombreProduitSortie)
    {
    	$this->nombreProduitSortie = $nombreProduitSortie;
    }
    public function getHeureParJour() {
        return $this->heureParJour;
    }

    public function setHeureParJour($heureParJour) {
        $this->heureParJour = $heureParJour;
    }

    public function getNombreHeurePasse() {
        return $this->nombreHeurePasse;
    }

    public function setNombreHeurePasse($nombreHeurePasse) {
        $this->nombreHeurePasse = $nombreHeurePasse;
    }

    public function getNombreProduitFini() {
        return $this->nombreProduitFini;
    }

    public function setNombreProduitFini($nombreProduitFini) {
        $this->nombreProduitFini = $nombreProduitFini;
    }
}